/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.uff.javaavancado.controller;

import br.uff.javaavancado.controletransacao.FabricaDeAppService;
import br.uff.javaavancado.exception.AplicacaoException;
import br.uff.javaavancado.modelos.Cliente;
import br.uff.javaavancado.service.ClienteService;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author proac
 */
public class LoginController extends BaseController {

    private Cliente clienteLogado;
    private String login;
    private String senha;
    private String erroLogin;
    private ClienteService clienteService;

    public LoginController() {
        try {
            clienteService = FabricaDeAppService.getAppService(ClienteService.class);
        } catch (Exception ex) {
            Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public String logar() {
        try {
            clienteLogado = clienteService.autenticarCliente(login, senha);
        } catch (AplicacaoException ex) {
        }
        if(clienteLogado == null) {
            erroLogin = "Login ou senha inválidos";
            return null;
        }
        erroLogin = null;
        return "produtos";
    }

    public String deslogar() {
        clienteLogado = null;
        return "produtos";
    }

    public boolean isLogado() {
        return clienteLogado != null;
    }

    public boolean isAdmin() {
        if (isLogado()) {
            return clienteLogado.isAdministrador();
        } else {
            return false;
        }
    }

    public Cliente getClienteLogado() {
        return clienteLogado;
    }

    public void setClienteLogado(Cliente clienteLogado) {
        this.clienteLogado = clienteLogado;
    }

    public void setErroLogin(String erroLogin) {
        this.erroLogin = erroLogin;
    }

    public String getErroLogin() {
        return erroLogin;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }
}
